package com.mmc.delay.ui.service;

import com.mmc.delay.bean.DeadJob;
import com.mmc.delay.bean.Job;
import com.mmc.delay.ui.bean.Pager;


import java.util.List;
import java.util.Map;

public interface RedisDelayAdminService {

    /**
     * 查询在delay里面的数据
     * @param topic
     * @return
     */
    Pager<List<Job>> queryDelayData(String topic, Integer pageNo, Integer pageSize);

    /**
     * 查询死信队列里的数据
     * @param topic
     * @return
     */
    Pager<List<DeadJob>> queryDeadData(String topic, Integer pageNo, Integer pageSize);

    /**
     * 查询所有pool里的数据
     * @return
     */
    List<Job> queryJobPool();

    Job queryJobById(String jobId);

    /**
     * 查询所有的topic的开关状态
     * @return
     */
    Map<String,Boolean> queryAllTopicStatus();

    /**
     * 死信队列里面的数据重试
     * @param deadJob
     * @return
     */
    boolean deadMessageReTry(DeadJob deadJob);

    void stopTopic(String topic);

    void startTopic(String topic);
}
